import Vue from 'vue'
import Vuex from 'vuex'

Vue.use(Vuex)

export default new Vuex.Store({
  state: {  //负责存储数据
    collectList: [],//保存所有收藏的店铺
    addressList: [],//保存新建的地址
    last_id: 0,//保存最后一次新增地址的id
    cartList:[],//保存加入购物车的商品
  },
  mutations: {  //内部的方法是同步方法(可以直接修改state中的数据)
    collect(state,item) { //收藏
      state.collectList.push(item);
      console.log(state.collectList);
    },
    cancel_collect(state,id) { //取消收藏
      //查找对应id的店铺
      var findIndex = state.collectList.findIndex((item) => { return item.id === id });
      //从收藏列表中删除
      if(findIndex !== -1)
      state.collectList.splice(findIndex, 1);

      console.log(state.collectList);
    },
    add(state, item) {// 新建地址
      console.log(item);
      
      item.id = state.last_id + 1;//给新建的地址添加一个id
      state.addressList.push(item);
      state.last_id = item.id;//维护last_id
    },
    delete_address(state,id) {//删除地址
      //更具id 查找对应id的地址,
      var findIndex = state.addressList.findIndex((item) => { return item.id === id });

      //删除
      if (findIndex !== -1)
      {
        state.addressList.splice(findIndex, 1);  
      }
    },
    edit_address(state,item){ //更新地址  ,item是最新的地址
      //更具id 查找对应id的地址,
      var findIndex = state.addressList.findIndex((i) => { return i.id === item.id });

      //替换
      if (findIndex !== -1) {
        state.addressList.splice(findIndex, 1, item);
      }
    },
    add_to_cart(state, item) { //加入购物车
      //item.count = 1;
      //判断当前商品是否已经加入
      var findItem = state.cartList.find((i) => { return i.id === item.id });
      if (findItem)//重复加入了
      {
        findItem.count++;
      }
      else//第一次加入
      {
        Vue.set(item, 'count', 1);
        state.cartList.push(item);
      }
      console.log(state.cartList);
      
    },
    add_count(state,id) {//数量加1
      //更具id 查找对应id的地址,
      var findItem = state.cartList.find((item) => { return item.id === id });

      if (findItem) {
        findItem.count++;
      }
      console.log(findItem, state.cartList);
      
    },
    sub_count(state,id) {//数量减1
      //更具id 查找对应id的地址,
      var findItem = state.cartList.find((item) => { return item.id === id });

      if (findItem && findItem.count > 1) {
        findItem.count--;
      }
      else if (findItem && findItem.count == 1)//数量为1,删除该商品
      {
        //更具id 查找对应id的地址,
        var findIndex = state.cartList.findIndex((item) => { return item.id === id });

        //删除
        if (findIndex !== -1) {
          state.cartList.splice(findIndex, 1);
        }

      }
    }

  },
  actions: {
  },
  modules: {
  }
})
